Cloud computing is the use of computing resources (hardware and software) that are available in a remote location and accessible over a network, such as the Internet. Users are able to buy these computing resources (including storage and computing power) as a utility on demand. Cloud computing entrusts remote services with a user's data, software and computation. Use of virtual computing resources can provide a number of advantages including cost advantages and/or the ability to adapt rapidly to changing computing resource needs.
A virtual desktop environment may be hosted on the cloud or on a server at an organization site. A desktop computing environment on the cloud (hereinafter referred to as a “cloud desktop”) provides a virtual desktop environment running on servers in the cloud that a user can connect to from a personal computing device. A desktop computing environment at an organization site (hereinafter referred to as an “on-premise virtual desktop”) provides a virtual desktop environment running on servers owned and/or operated by the organization or user associated with the organization. Many virtual desktops provide constant availability, where a virtual desktop instance continually runs on one or more servers in the cloud or on one or more organization servers. However, virtual desktops are heavily sensitive to network latency, since they must stream a real-time user interactive desktop session over the network from a server (e.g., running in the cloud) to a user device. If a cloud virtual session has high latency, a user may experience delay when they, e.g., move their mouse or attempt to stream audio, diminishing the user experience. In addition, network latency may increase with the geographic distance between the user device and the virtual desktop environment.